1. Field of the Invention
The invention provides for a system and method for manipulating digital image data capable of being displayed on a variety of digital display devices including flat panel displays. More particularly, the invention provides for a system and method for mixing graphics and text in an on-screen display (OSD) application.
2. Background of the Invention
Current display systems include on-screen display (OSD) circuitry capable of displaying, on a predetermined portion of the display device, textual and/or graphic information overlaid on signals typically provided to the display device. Television sets, for example, often display channel numbers and/or closed captioning text over video signals associated with the displayed show. Computer monitors, for another example, often display brightness, contrast, or other control information over running software applications, e.g., word processing, spreadsheet, drawing, and other applications.
OSD circuitry operates in either graphic or text mode. High-end display systems often implement OSD circuitry using the graphic mode. In graphic mode, the OSD circuitry stores bitmaps in typically large memories. Bitmaps represent a graphic image using rows and columns of picture elements (pixels) stored in memory. The OSD circuitry stores the value of each pixel in one or more bits of data, e.g., 2 to 24 bits per pixel. The value of each pixel might represent luminance of the corresponding pixel. The more colors and shades of gray, the more bits the OSD circuitry uses to represent the value of the pixel. The OSD circuitry provides the bitmap to the display.
The OSD circuitry requires a larger bitmap memory the more bits it uses to represent the pixel. Consequently, the cost of the OSD circuitry increases proportionately to the number of bits used to represent the value of each bitmapped image pixel. For example, assume the OSD circuitry wants to display a 512×200 bitmapped image in at least 16 colors (4 bits for each pixel) to an XGA (1024×768) resolution display device. In this example, the bitmap memory must be at least 50 Kbytes.
(512×200 pixels)×(4 bits/pixel)×(1 byte/8 bits)=50 Kbytes
The bitmap memory increases to over 200 Kbytes if the OSD circuitry displays the same 512×200 bitmapped image in 256 colors (8 bits for each pixel).
(512×200 pixels)×(16 bits/pixel)×(1 byte/8 bits)=200 Kbytes
Because of memory cost, low-end display systems implement OSD circuitry using the text mode. Instead of storing graphic image bitmaps in large memories, the OSD circuitry stores individual character codes in smaller character memory, e.g., random access memory. The OSD circuitry uses the character codes to look up simple bitmaps of the individual characters in smaller font memory, typically implemented as either random access or read-only memories. These simple bitmaps include a single bit value for each pixel, the bit value indicating a foreground and a background color.
Graphic mode is advantageous over text mode in situations requiring depth of color or shades of gray and complicated graphics. Text mode is advantageous over graphic mode when cost is at issue. The memory costs associated with graphic mode far exceed the memory costs associated with text mode. Text mode is also advantageous over graphic mode because the OSD circuitry —more particularly, OSD software and/or firmware—is easier to maintain in text mode than it is in graphic mode. In text mode, the OSD software can easily modify a character to be displayed by simply changing its corresponding character code stored in character memory. In graphic mode, the OSD software and/or firmware must rewrite the entirety of the bitmap to change any portion of it often requiring complex graphic engines to speed up the process.
Accordingly, a need remains for a system and method of incorporating graphics in a text mode OSD application.